Color based social networking recommendations

ABSTRACT

Systems and methods are provided for generating social networking recommendations. A color preference of a first user may be determined from a color palette of a first image associated with the user and/or a color palette of an item associated with the user. Other users may be identified that have a similar color preference as the first user based at least in part on the determined color preference of the first user. Interactions between the first user and one or more other users having similar color preferences with respect to the first user may be facilitated. A social networking recommendation may be generated with respect to the one or more other users having similar color preferences with respect to the first user.

BACKGROUND

In many computing-centric commerce models, users are able to efficientlyview and purchase a wide variety of items, over computer networks. Inmany scenarios, a particular network resource, such as a commercenetwork site, can present items (e.g., goods and/or services) associatedwith different colors. The items may be depicted in photographs or otherimages presented via the network site. Users of such commerce networksites and other network sites may have certain color preferences.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing aspects and many of the attendant advantages will becomemore readily appreciated as the same become better understood byreference to the following detailed description, when taken inconjunction with the accompanying drawings. Throughout the drawings,reference numbers may be re-used to indicate correspondence betweenreferenced elements. The drawings are provided to illustrate exampleembodiments described herein and are not intended to limit the scope ofthe disclosure.

FIG. 1 is a block diagram illustrating one embodiment of an operatingenvironment including an image processing service for palette generationbased on color images and a color-related social networking service.

FIG. 2 is a block diagram illustrating an embodiment of examplecomponents of a computing system capable of providing the imageprocessing service and/or color-related social network recommendationservice shown in FIG. 1.

FIG. 3 is a flow diagram illustrating an example routine implemented bythe color-related social network recommendation service for providingcolor-related social network recommendations.

FIG. 4 is a flow diagram illustrating an embodiment of a palettegeneration routine implemented by the image processing service.

DETAILED DESCRIPTION

Generally described, the present disclosure corresponds to methods andsystems for providing color-related social network recommendations.Often, users have particular color preferences with respect to clothing,makeup, furniture, jewelry, and other items. Such users may wish tointeract with other users having similar color preferences. For example,a given user may wish to learn what items other users with a similarcolor preference are purchasing or what items in which other users withsimilar color preferences are interested, as the given user may beinterested in purchasing or otherwise utilizing such an item. Further, agiven user may want to ask the opinion of another user having similartastes regarding a given item or set of items, such as color palettes,clothing, furniture, appliances, and other items. For example, a usertrying to decide what to wear or what to purchase may want to seek theopinion of another user having similar color tastes. Still further, auser may simply wish to socialize via an electronic social network orotherwise with other users having similar tastes in color. Aspects ofthe present disclosure relate to determining color preferences of a userand to determining color preferences of a user by determining palettesof one or more images provided by or associated with the user and toidentifying users that have similar color preferences. Additionalaspects of the present disclosure relate to enabling users that havesimilar color preferences to interact and share color-relatedinformation, such as item purchases, color palettes, and opinions.

In accordance with an illustrative embodiment, a color-related socialnetwork recommendation service identifies color preferences of a userand uses such identified color preferences to identify similar users.One or more techniques may be used singly or in combination. A givenuser may be associated with one or color palettes. The association maybe based on, in whole or in part: an affirmative selection of a paletteby the user; palettes associated with items purchased by the user (e.g.,as determined from the user's purchase history); palettes associatedwith items browsed by the user (e.g., as determined from the user'sbrowse history); palettes of items in the user's home (e.g., the user'swardrobe); searches performed by the user (e.g., search for colors orkeyword searches that may be related to palettes); color palettes ofitems the user has liked on social networking sites, user images, etc.Metadata identifying the color palettes associated with the user may bestored in association with the user's account record. Users that areassociated with similar palettes (e.g., within a specified range ofsimilarity) may be determined. Those users associated with similar colorpalettes may be identified to one another as a recommended socialnetworking partner or group member. For example, an implicit group ofusers may be defined based at least in part on the similarity of theirassociated color palettes. The implicit group may be identified on asocial networking page. By way of illustration, a given user may beidentified by a user name (which may be an alias name), a representativeimage (which may be a photograph or graphic provided or selected by theuser), the user's preferred color palettes, the user's item preferences,brand preferences, etc. Metadata may optionally be associated withindividual palettes, for purposes of textually indicating the color(s)included in the color palette using color names or other coloridentifiers (including names expressed using ASCII characters, icons, orother such data), and optionally indicating their format, tags,associations, sources, popularity, date(s)/time(s) of creation/editing,geolocation data, last update time, semantics, features, conditions,associated demographics (e.g., geographical region, age, gender, ethnicgroup, religion, culture, language, dialect, etc. of users that providedinput used in creating the color palette), or the like. For more detailson color searching based on a keyword, see U.S. patent application Ser.No. ______, entitled “IDENTIFYING DATA FROM KEYWORD SEARCHES OF COLORPALETTES,” filed on Jun. 26, 2014, and corresponding to Attorney DocketNo. SEAZN.903A1; U.S. patent application Ser. No. ______, entitled“GENERATING VISUALIZATIONS FROM KEYWORD SEARCHES OF COLOR PALETTES,”filed on Jun. 26, 2014, and corresponding to Attorney Docket No.SEAZN.903A2; U.S. patent application Ser. No. ______, entitled“DETERMINING AFFILIATED COLORS FROM KEYWORD SEARCHES OF COLOR PALETTES,”filed on Jun. 26, 2014, and corresponding to Attorney Docket No.SEAZN.903A3; U.S. patent application Ser. No. ______, entitled“IDENTIFYING DATA FROM KEYWORD SEARCHES OF COLOR PALETTES AND KEYWORDTRENDS,” filed on Jun. 26, 2014, and corresponding to Attorney DocketNo. SEAZN.903A4; U.S. patent application Ser. No. ______, entitled“IDENTIFYING DATA FROM KEYWORD SEARCHES OF COLOR PALETTES AND COLORPALETTE TRENDS,” filed on Jun. 26, 2014, and corresponding to AttorneyDocket No. SEAZN.903A5; and U.S. patent application Ser. No. ______,entitled “DETERMINING COLOR NAMES FROM KEYWORD SEARCHES OF COLORPALETTES,” filed on Jun. 26, 2014, and corresponding to Attorney DocketNo. SEAZN.903A6, each of which is incorporated by reference herein inits entirety.

In particular, a user's color preferences may be explicitly provided bythe user via a form or otherwise. For example, a form provided to theuser may textually and/or via images describe or depict color palettes(including one or more colors). The user may designate one or morepalettes as preferred palettes and may designate one or more palettes asdisfavored/disliked palettes. Optionally, a user may indicate thestrength of a preference via a score or a textual rating. For example, auser may indicate that on a scale of 1-10, with 1 being the leastpreferred and 10 being the most preferred, the user's preference withrespect to one or more color palettes. By way of further example, a usermay select or enter a preference description, such as “strongly like,”“somewhat like,” “indifferent,” “somewhat dislike,” or “stronglydislike.” Of course, other preference indicators may be used. The user'sexplicit color preference indication(s) may be stored in a user accountrecord.

In accordance with an illustrative embodiment, an image processingservice accesses one or more color images submitted by the user and/orobtained from a social networking page associated with the user. Theimages may depict one or more items or designs, where the user indicatesor it is otherwise determined that the user prefers one or more colorsof the item or design. For example, the color images may be of clothingitems in the user's wardrobe, of the user's furniture, and/or of itemsthat the user likes. The image processing service generates one or morecolor palettes from the color images (e.g., based on palette generationcriteria). Optionally, the image processing service determines colornames for the generated palettes. Color palette informationcorresponding to the generated color palettes may be stored inassociation with the user's account. For example, the color paletteinformation may comprise the color palette itself and/or the colorname(s) associated with the color palette, and an indication that thecolor palette is a preferred color palette of the user. Severaldifferent color palettes may be generated based on the user's image. Agenerated preference indication, such as a preference score and/orranking, may be generated based at least in part on the frequency eachof the generated palettes appears in the user's images. The generatedpreference indication(s) may be stored in association with the user'saccount and in association with the color palette information.

In accordance with an illustrative embodiment, color palette informationmay be accessed from a user's purchase or browse history. For example,when a user purchases or otherwise browses an item, a record of thepurchase or selection of the item may be stored in association with theuser's account. The purchase record may include metadata associated withthe item, such as a name of the item, a color name, a color image, anitem type (e.g., blouse, skirt, shoes), and an item category (e.g.,clothing, furniture, appliances, etc.). The user's color preference,including the user's color preference for different item types andcategories, may be determined from the color palette informationincluded in the metadata associated with the items purchased by theuser. A color preference indication, such as a preference score and/orranking, may be generated based at least in part on the frequency eachof the color palettes appear in the user's purchases. The generatedcolor preference indication(s) may be stored in association with theuser's account.

User color preference information may also be determined from a socialnetworking service utilized by the user. In accordance with anotherillustrative embodiment, a user's existing social network may bedetermined from information the user has made accessible to acolor-related social networking service. For example, the user may haveuploaded or otherwise provided the color-related social networkingservice with access to the user's contact records that may includenames, email addresses, and social network site links. For example, theuser may have uploaded or otherwise provided the color-related socialnetworking service with access to at least portions of the user'selectronic communications (e.g., who the communications were directed toor received from), such as emails, SMS messages, video chats, or thelike. The user's social network may also be obtained from a socialnetworking site. For example, the color-related social networkingservice may access a user's social graph that depicts personal relationsof the user (e.g., indicates other users with whom the user has anestablished social network relationship).

By way of further example, given the appropriate permissions, thecolor-related social networking service may access user objects madeavailable via the social networking site (e.g., user images andassociated metadata, such as descriptions of items in the images,optionally including color palette information, and user ratings orfeedback regarding such objects). The user's color preferences fordifferent item types and categories may be determined from the socialnetworking data, such as color name data, item descriptions, images,etc. The frequency in which data corresponding to a given color paletteappears in the user's social networking data may also be used todetermine the user's color preference(s). By way of example, the imagesmay be processed to determine respective color palettes and color namesfor the color palettes as similarly described elsewhere herein. A colorpreference indication, such as a preference score and/or ranking, may begenerated based at least in part on the frequency a given color palette,color name, or other color identifier occurs with respect to the socialnetworking data. The generated color preference indication(s) may bestored in association with the user's account. Thus, a user's colorpreferences may be determined based on images and from the user's socialnetwork.

As noted above, a user's color preference information may be determinedfrom a variety of sources. The color preference information from thevariety of sources may be combined to form a unified color preferencedetermination and ranking. In generating a unified color preferencedetermination and ranking, color preference information from certainsources may be weighted differently than color preference informationfrom other sources. For example, the user's explicit color preferenceindications may be assigned the highest weighting, the color preferenceindications determined from the user's purchase or browse history may beassigned the next highest weighting, and the color preferenceindications determined from the user's social networking information maybe assigned the third highest weighting, and so on. The foregoing isjust one example weighting scheme and other weighting schemes may beused. For example, the color preference indications determined from theuser's social networking information may be assigned the highestweighting, the user's explicit color preference indications may beassigned the next highest weighting, and the color preferenceindications determined from the user's purchase or browse history may beassigned the third highest weighting, and so on.

Based at least in part the color preference indication(s) (e.g., theunified color preference determination and/or ranking) for a given user,in accordance with an illustrative embodiment, other users having thesame or similar color preferences may be identified. A user's colorpreference indication may optionally be used as a user fingerprint toidentify the user.

By way of illustration, the social networking service may identify otherusers that have the same most preferred color palette, and/or mayidentify other users that have the same ranking of multiple preferredcolor palettes, for at least a portion of the user's color paletterankings (e.g., the top three ranked color palettes). By way of furtherexample, the social networking service may identify users that have thesame most preferred palette and the same next two most preferredpalettes, even though the ranking of the next two most preferredpalettes may differ. By way of illustration, in this example if User 1and User 2 have the same most preferred palette (palette A), and User1's second most preferred palette is palette B and third most preferredpalette is palette C, while User 2's second most preferred palette ispalette C and third most preferred palette is palette B, then in thisillustration User 1 and User 2 will be identified as “matching users”with similar enough tastes in palettes so as to be grouped together forone or more of the services discussed herein. By way of furtherillustration, in another embodiment, two users may be considered a matchonly if their three most preferred palettes have the same ranking. Byway of yet further illustration, two users may be considered a matchonly if their two most preferred palettes have the same ranking and theyhave the same least preferred palette.

Optionally, a first color palette may be considered the same as asecond, different color palette if their respective primary colors arewithin a threshold distance. For example, the threshold may indicate amaximum color distance, wherein if the respective primary colors areless than the maximum color distance apart, color palettes areconsidered the same color palettes for purposes discussed herein. Anexample of such a formula is one based on a human perceptible colordifference. Various color distance formula(e) or model(s), such asCIEDE2000, CMC 1:c, or the like, can be utilized to compute colordistance between colors, and the computed color distance may be comparedto the threshold to determine whether the color distance falls within oroutside of the threshold. For more information on how to determine ahuman perceptible color difference and the human color distance formula,please see U.S. patent application Ser. No. ______, entitled“IMAGE-BASED COLOR PALETTE GENERATION,” filed on Jun. 26, 2014, andcorresponding to Attorney Docket No. SEAZN.912A1; and U.S. patentapplication Ser. No. ______, entitled “IMAGE-BASED COLOR PALETTEGENERATION,” filed on Jun. 26, 2014, and corresponding to AttorneyDocket No. SEAZN.912A2; U.S. patent application Ser. No. ______,entitled “IMAGE-BASED COLOR PALETTE GENERATION,” filed on Jun. 26, 2014,and corresponding to Attorney Docket No. SEAZN.912A3; and U.S. patentapplication Ser. No. ______, entitled “IMAGE-BASED COLOR PALETTEGENERATION,” filed on Jun. 26, 2014, and corresponding to AttorneyDocket No. SEAZN.912A4, each of which is incorporated by referenceherein in its entirety.

Optionally, a user may define how closely or loosely another user'scolor preferences need to be in order for the other user to beconsidered a suitable social network contact, and for one or more userinteraction services to be provided with respect to the user.Optionally, a system operator provides such definition, or both a userand a system operator may contribute to the definition of how closely orloosely another user's color preferences need to be in order for one ormore of user interaction services to be provided with respect to theuser. As yet another option, a given user may opt-in or opt-out of oneor more user interaction services. Users that have been determined tohave sufficiently similar color preferences may be logically groupedtogether. As another option, a name is automatically generated for agrouping of users that have sufficiently similar color preferences. Inyet another option, the generated group name may be based on, andinclude in whole or in part, a name of the color palette most preferredby the group (e.g., the “Greens”).

In one embodiment, the color-related social network recommendationservice may be provided to two or more users that have been determinedto have sufficiently similar color preferences and may provide forsharing user information, such as profile information, purchaseinformation, media, color palettes, etc., of one user with the otheruser. The profile information may include a user identifier (e.g., auser's actual name or an alias), a user's color preferences (e.g., topfive most preferred color palettes in ranked order, three leastpreferred color palettes in ranked order, etc.), a user's preferreditems (e.g., types of clothing or accessories preferred by a user), auser's preferred brands, a user's geographical location (e.g., byregion, state, city, neighborhood, etc.), etc. By way of example, thepurchase information for an item may include a unique item identifier,an item type identifier (e.g., a name, a Universal Product Code (UPC), aEuropean Article Number (EAN), an International Standard Book Number(ISBN), etc.), an item category identifier, item color information(e.g., color palettes associated with the item), affiliated colorsassociated with the color palette of the item, item price, etc. As yetanother option, the shared purchase information may be provided inassociation with a link or other control via which the recipient usermay initiate the purchase of the item from a commerce service.

In another embodiment, the color-related social network recommendationservice may be provided to two or more users that have been determinedto have sufficiently similar color preferences and may enable users tocommunicate with each other via a social networking page, shortmessages, emails, audio/video calls, and/or otherwise. In yet anotherembodiment, the color-related social network recommendation serviceprovides a voting service, where users of a group can vote on whetherthey like or dislike a color palette, or an item, or an item in a givencolor palette. The vote results may be shared among users havingsufficiently similar color preferences.

Optionally, users that have been logically grouped together based atleast in part on their color preferences may be extended an invitationto join the group. The color-related social network recommendationservice may detect whether or not a given user accepted the invitation,and users that have not accepted the invitation or been provided withthe invitation may be precluded from participating in certain or allinteraction services with respect to the group. For example, a non-groupmember may be inhibited to communicating with other group members, fromvoting on color palettes and items, from receiving profile informationof users in the group, etc. User interaction may be enabled on a socialnetworking site, a commerce site, or elsewhere.

Overview of an Example Embodiment

FIG. 1 illustrates an embodiment of a color-related social networkrecommendation processing environment 100 that can implement featuresdescribed herein in the context of an example color-related socialnetwork recommendation service 102. In some embodiments, thecolor-related social network recommendation processing environment 100includes the color-related social network recommendation service 102, animage processing service 104, a commerce service 106, a palette datastore 110, a network 120, an item data store 130, a user account datastore 132, third party users 140, and social networking services 150. Insome embodiments, various components of the color-related social networkrecommendation processing environment 100 are communicativelyinterconnected with one another via the network 120. The color-relatedsocial network recommendation processing environment 100 may includedifferent components, greater or fewer number of components, and can bestructured differently. For example, there can be more than one datastore or other computing devices in connection with the color-relatedsocial network recommendation service 102. As another example,components of the color-related social network recommendation processingenvironment 100 may communicate with one another, with or without thenetwork 120.

The color-related social network recommendation service 102 cancorrespond to any system capable of performing the processes describedherein. The color-related social network recommendation service 102 maybe implemented by one or more computing devices. For example, thecolor-related social network recommendation service 102 may beimplemented by computing devices that include one or more processors toexecute one or more instructions, memory, and communication devices totransmit and receive data over the network 120. In some embodiments, thecolor-related social network recommendation service 102 is implementedon one or more backend servers capable of communicating over a network.In other embodiments, the color-related social network recommendationservice 102 is implemented by one or more virtual machines in a hostedcomputing environment (e.g., a “cloud” computing environment). Thehosted computing environment may include one or more provisioned andreleased computing resources, which computing resources may includecomputing, networking or storage devices.

In one aspect, the color-related social network recommendation service102 can correspond to one or more applications that perform,individually or in combination, the recommendation and user interactionfunctions described herein, including one or more of identifying usersthat have similar color preferences and providing interaction servicesto such users, sharing user profile information, enabling such users tocommunicate, enabling such users to share color-related purchaseinformation and color palettes, enabling such users to vote for colorsand items, etc. In another aspect, the color-related social networkrecommendation service 102 may be configured to identify and share colortrends among users sharing color preferences.

The color-related social network recommendation service 102 may becommunicatively connected to the palette data store 110. The palettedata store 110 can generally include any repository, database, orinformation storage system that can store palette data and associatedmetadata.

The color palette data stored in the palette data store 110 can becollections of colors, including collections of colors generated by auser and/or system based at least in part on human color preferences,optionally with an associated weight and date of creation. Palettes maybe generated from images, such as user submitted images or item pages,using the image processing service 104. Palette data can be of variousformats, such as lists, vectors, arrays, matrices, etc. Metadata can beassociated with individual palettes, for purposes of textuallyindicating the color(s) included in the color palette, and optionallyindicating their format, semantics, features, conditions, sources, dateof creation/editing, associated demographics (e.g., geographical region,age, gender, ethnic group, etc., of users that provided input used increating the color palette), or the like. The color palettes may havebeen ranked or voted on by people to indicate which combinations ofcolors are more preferable, visually appealing, popular, or the like.Such ranking and/or votes may be stored and may be used to weight colorpalettes. Using an initial color or colors, an ordered list ofaffiliated colors can be generated where a given affiliated color isranked based at least in part on the popularity of the combination ofthe initial color or colors with that affiliated color. The colorpalette can be built by adding an affiliated color to the colors in thecolor palette and then updating the list of affiliated colors to suggestnew affiliated colors to add to the updated palette. The resulting colorpalette can be configured to contain a combination of colors that isvisually appealing or preferable because each affiliated color used ingenerating the color palette has been determined by the community ofpeople to be an appropriate or preferable color companion to the coloror colors already in the color palette. The color palettes generatedusing the affiliated color process may be used to provide color-relatedrecommendations for colors or colored items that would go well withanother color or colored item. Particular color palettes may beassociated with a particular community that includes a biased population(e.g., that are related based on geographical region, age, gender,ethnic group, preferences, social network, etc.), such a group of usershaving similar color preferences. This enables providing recommendedcolors to users that have a known and/or inferred bias that correspondsto a palette of a community associated with such color palette bias.

In some embodiments, a first color can be selected by a program or auser and a plurality of color palettes can be identified from a datastore of color palettes containing that color (or a sufficiently similarcolor). From those palettes, a list of affiliated colors can begenerated by identifying the other colors in the color palettes. Foreach affiliated color in the list, a weight can be assigned based on theranking, rating, and/or number of votes the containing palette hasreceived. The list of affiliated colors can be sorted based on theassigned weights. The program or user can select an affiliated colorfrom the sorted list to add to a custom color palette containing theinitial color. When the selected affiliated color is added to the colorpalette, a new list of affiliated colors can be generated based at leastin part on the colors in the color palette that allows the program oruser to continue to build the color palette. For more example details onextracting colors from an image and building a color palette, seeapplications U.S. patent application Ser. No. ______, entitled“IMAGE-BASED COLOR PALETTE GENERATION,” filed on Jun. 26, 2014, andcorresponding to Attorney Docket No. SEAZN.912A1; and U.S. patentapplication Ser. No. ______, entitled “BUILDING A PALETTE OF COLORSBASED ON HUMAN COLOR PREFERENCES,” filed on Jun. 26, 2014, andcorresponding to Attorney Docket No. SEAZN.904A1, each of which isincorporated by reference herein in its entirety. For more details ongenerating a weighted or ordered list of affiliated colors or generatinga color palette using affiliated colors, see application U.S. patentapplication Ser. No. ______, entitled “BUILDING A PALETTE OF COLORSBASED ON HUMAN COLOR PREFERENCES,” filed on Jun. 26, 2014, andcorresponding to Attorney Docket No. SEAZN.904A1, which is incorporatedby reference herein in its entirety.

The commerce service 106 may provide an electronic catalog to whichthird party users 140 may be provided access via respective userdevices. For example, the commerce service 106 may provide network pagesthat each provide relevant details regarding a particular item(s) (“itemdetail pages”). A given item detail page may include detailedinformation regarding an item (e.g., an item being offered for sale),such as one or more images, descriptive text, color name(s), a price,weight, size options, reviews of the item by other users or byprofessional reviewers, alternative similar items, and/or otherinformation. Reviews of an item from users having the same or similarcolor preferences to the users accessing the item detail page may begiven preferential display (e.g., displayed above or earlier thanreviews that are not from users having similar color preferences,highlighted, associated with icons or text indicating the colorpreference similarity, etc.). The item detail page may also includecontrols via which the user can select among various versions of theitem (e.g., size, color, etc.), and a purchase control via which theuser can initiate purchase of the item (e.g., by adding the item to ashopping cart). The commerce service 106 may also provide third partyusers 140 with interfaces via which the user view information regardingusers with similar color preferences, and via which users with similarcolor preferences can interact (e.g., share opinions on items, sharepurchase or browse history information, etc.).

While a commerce environment is often used as an example herein, it willbe appreciated that the color recommendation service 106, as disclosedherein, may be used in a variety of environments other than a commerceenvironment. For example, aspects of the present disclosure, in someembodiments, may be used and/or implemented to efficiently recommendcolors and color palettes to consumers, merchandisers, designers,architects, artists, landscapers, developers, gamers, students, etc. forvirtually any purpose. Without limitation, aspects of the presentdisclosure may be used for efficient generation of color-basedrecommendations for use in social networking contexts, digital photoalbums, digital news articles, artistic works, content generation,design/architectural drawings, etc. just to name a few practical,non-limiting examples.

The network 120 may include any suitable combination of networkinghardware and protocols necessary to establish communications within thecolor color-related social network recommendation processing environment100. For example, the network 120 may include private networks such aslocal area networks (LANs) or wide area networks (WANs) as well aspublic or private wireless networks, satellite networks, cable networks,cellular networks, or the Internet. In such an embodiment, the network120 may include hardware (e.g., modems, routers, switches, loadbalancers, proxy servers, etc.) and software (e.g., protocol stacks,accounting software, firewall/security software, etc.) that establishesnetworking links within the color color-related social networkrecommendation processing environment 100. Additionally, the network 120may implement one of various communication protocols for transmittingdata between components of the color color-related social networkrecommendation processing environment 100.

The item data store 130 may be associated with one or more sites andsystems, such as a commerce network site providing the color-relatedsocial network recommendation service or third party merchandiseproviders or vendors which may market items via the commerce networksite providing the color-related social network recommendation service102. The item data store 130 may be associated with any computingdevice(s) that can facilitate communication with the color-relatedsocial network recommendation service 102 and the commerce service 106via the network 120. Such computing devices can generally includeservers, desktops, laptops, wireless mobile devices (e.g., smart phones,PDAs, tablets, wearable computing devices, or the like), game platformsor consoles, electronic book readers, television set-top boxes,televisions (e.g., internet TVs), and computerized appliances, to name afew. Further, such computing devices can implement any type of software(such as a browser or a mobile media application) that can facilitatethe communications described above.

The item data store 130 may have metadata/keywords that identify and/ordescribe the respective items. By way of example, the item data store130 may store item records for respective items in one or moreelectronic catalogs including unique item identifiers, such as UniversalProduct Codes (UPC), European Article Numbers (EAN), InternationalStandard Book Numbers (ISBN), and/or other identifiers. By way offurther example, the item metadata may indicate the item type and/orcategory, such as “dress” and “clothing,” or “blender” and “kitchenappliance.” In addition, the item metadata may include text identifyingone or more colors of the item or of versions of the item, such as“red,” “orange,” “blue,” etc. The metadata may further include suchinformation as brand. Other data, such as price, may be included asmetadata or otherwise may accessible. Still further, a given item recordmay include one or more images of the item, where the image may furtherbe associated with metadata (e.g., identifying items in the image byitem type, item category, unique identifier, identifying associatedcolor palettes, etc.). Item record data may have been provided by anoperator of a commerce site, by consumers, third party data stores(e.g., databases), and/or other sources. As used herein, the term“item,” in addition to having its ordinary meaning, is usedinterchangeably to refer to an item itself (e.g., a particular product)and to its description or representation in a computer system orelectronic catalog. As will be apparent from the context in which it isused, the term is also sometimes used herein to refer only to the itemitself or only to its representation in the computer system.

The user account data store 132 may store user account information inrespective user account records. A given user account record may includeuser purchase history information, such as the items a user haspurchased and related metadata, such as the item color palette, the itemtypes, the item category, the item price etc. A given user accountrecord may also include user submitted data, such as image of the user'swardrobe or images of items the user likes. For example, a user may takeimages, e.g., photographs and/or videos, of the user's wardrobe (e.g.,dresses, shoes, blouses, pants, socks, other items of clothing,handbags, briefcases, earrings, necklaces, other jewelry, otheraccessories, etc.), and upload the images to a user account data store132 (which may be provided in a hosted computing environment). The usermay have manually provided metadata to be stored in association with theimages (e.g., color, item type, item category, product identifiers,etc.). Alternatively or in addition, the color-related social networkrecommendation service 102 or other service may have automaticallyrecognized via an object identification module the item(s) and itsassociated colors in a given user image and stored such information asmetadata in association with the given user image. The meta-data mayalso have been semi-manually or semi-automatically provided orgenerated. In addition, a user account record may store user profileinformation such as a user's color preferences and preference rankings,as well as a user's instructions regarding sharing information withother users, e.g., other users having similar color preferences. Asnoted above, the user's color preferences may be determined based oncolor palettes generated from the user submitted images, on explicitcolor preference indications provided by the user via surveys orotherwise, on the user's purchase or browse history, on socialnetworking information, and/or other information.

Third party users 140 may correspond to visitors to a network site(e.g., a commerce network site), such as consumers, designers,architects, or the like, and can be associated with any computingdevice(s) that can facilitate communication with the color-relatedsocial network recommendation service 102 via the network 120. Suchcomputing devices can generally include wireless mobile devices (e.g.,smart phones, PDAs, tablets, wearable computing devices, or the like),desktops, laptops, game platforms or consoles, electronic book readers,television set-top boxes, televisions (e.g., internet TVs), andcomputerized appliances, to name a few. Further, such computing devicescan implement any type of software (such as a browser or a mobile mediaapplication) that can facilitate the communications described above.

Social networking services 150 may build social networks among users whoshare real-life connections, interests, and color-related preferences.The social network services 150 may include user profiles and sociallinks with other users and groups, and may enable linked users to shareinformation and communications, including text, audio, and still andvideo images via social networking pages, emails, short messagingservices and otherwise.

One skilled in the relevant art will appreciate that the examplecomponents and configurations provided in FIG. 1 are illustrative innature. Accordingly, additional or alternative components and/orconfigurations, especially regarding the additional components, systemsand subsystems for facilitating functions disclosed herein may beutilized.

FIG. 2 is a block diagram illustrating an embodiment of examplecomponents of computing system capable of implementing a color-relatedsocial network recommendation service 102 utilized in accordance withthe color color-related social network recommendation processingenvironment 100 of FIG. 1. The computing system includes an arrangementof computer hardware and software components that may be used toimplement aspects of the present disclosure. Those skilled in the artwill appreciate that the computing system implementing the color-relatedsocial network recommendation service 102 may include more (or fewer)components than those depicted in FIG. 2. It is not necessary, however,that all of these generally conventional components be shown in order toprovide an enabling disclosure.

The computing system implementing the color-related social networkrecommendation service 102 may include a processing unit 202, a networkinterface 204, a non-transitory computer-readable medium drive 206, andan input/output device interface 208, all of which may communicate withone another by way of a communication bus. The network interface 204 mayprovide the color-related social network recommendation service 102 withconnectivity to one or more networks or computing systems. Theprocessing unit 202 may thus receive information and instructions fromother computing devices, systems, or services via a network. Theprocessing unit 202 may also communicate to and from memory 210 andfurther provide output information via the input/output device interface208. The input/output device interface 208 may also accept input fromvarious input devices, such as a keyboard, mouse, digital pen, touchscreen, etc.

The memory 210 may contain computer program instructions that theprocessing unit 202 may execute in order to implement one or moreembodiments of the present disclosure. The memory 210 generally includesRAM, ROM and/or other persistent or non-transitory computer-readablestorage media. The memory 210 may store an operating system 214 thatprovides computer program instructions for use by the processing unit202 in the general administration and operation of the color-relatedsocial network recommendation service 102. The memory 210 may furtherinclude other information for implementing aspects of the presentdisclosure.

In one embodiment, the memory 210 may include an interface module 212.The interface module 212 can be configured to facilitate generating oneor more user interfaces through which an item data store 130 or a thirdparty user 140, utilizing a compatible computing device, may send to, orreceive from, the color-related social network recommendation service102 recommendations, image data, palette data, instruction data,metadata, etc., or otherwise communicate with the color-related socialnetwork recommendation service 102. Specifically, the interface module212 can be configured to facilitate processing functions describedherein, including generating palettes from images, determining andranking user color preferences, identifying users with similar colorpreferences, enabling users with similar color preferences to network,share information and communicate, etc. For example, color informationfor a third party user 140 may be obtained from user submitted images,explicit color preference indications provided by the user via surveysor otherwise, via user searches (e.g., where the user search queryincludes a color name), from the user's purchase history, the user'sbrowse history, from social networking information, and/or otherinformation. The third party user may submit images, color preferenceinformation, and may interact with other users having similar colorpreferences via one or more generated user interfaces. The userinterface can be implemented as a graphical user interface (GUI),Web-based user interface, computer program, smartphone or tablet programor application, touchscreen, wearable computing device interface,command line interface, gesture, voice, or text interface, etc., or anycombination thereof.

In addition, the memory 210 may include a data processing module 216that may be executed by the processing unit 202. In one embodiment, thedata processing module 216 implements aspects of the present disclosure.For example, the data processing module 216 can be configured to processuser images, instructions, item data from the item data store 130,palette data from the palette data store 110, data from the socialnetworking service 150, or metadata to rank user color preferences andto identify users having similar color preferences.

It should be noted that the color-related social network recommendationservice 102 may be implemented by some or all of the components presentin the computing system as discussed herein with respect to FIG. 2. Inaddition, the computing system may include additional components notpresent in FIG. 2. The modules or components described above may alsoinclude additional modules or be implemented by computing devices thatmay not be depicted in FIG. 1 or 2. For example, although the interfacemodule 212 and the data processing module 216 are identified in FIG. 2as single modules, one skilled in the relevant art will appreciate thatthe modules may be implemented by two or more modules and in adistributed manner. As another example, the color-related social networkrecommendation service 102 and its components can be implemented by webservers, application servers, database servers, combinations of thesame, or the like, configured to facilitate data transmission to andfrom third party users 140 and/or social networking services 150, vianetwork 120. Accordingly, the depictions of the modules are illustrativein nature.

Example routines will now be described with reference to the figures.

Example Recommendation Process to Generate Color-Related Social NetworkRecommendations

FIG. 3 is a flow diagram illustrating an example routine performed bythe color-related social network recommendation service 102 forproviding color-related social network recommendations based on usercolor-related data. The color-related social network recommendationservice 102 starts the routine at block 300. At block 302, the routinecolor-related social network recommendation service 102 accesses usercolor data, such as color data that may indicate a user's color palettepreferences, where a color palette may include one or more colors. Byway of example, the user color data may be obtained from user submittedimages, such as those that may be stored in the user account data store132, by a social networking service 150, or elsewhere. The user imagesmay be processed as discussed elsewhere herein to determinecorresponding color palettes. By way of further example, user color datamay be obtained from the user's browsing and posting history on thesocial network, such as from keywords on content browsed or posted bythe user. For example, if a user posts articles or comments regarding aparticular sports team, an inference may be made that the user may beinterested in the sports team's colors. By way of further example, thecolor-related social network recommendation service 102 may provide acolor preference survey user interface to a user device configured toprompt the user to indicate the user's preferred color palettes (e.g.,the user's 3, 5, or 8 favorite color palettes) and optionally ranking ofthe user's preferred palettes. As another option, the user may befurther prompted via the color preference survey user interface toindicate the user's least favorite color palettes (e.g., the user's 3,5, or 8 least favorite color palettes). The color-related social networkrecommendation service 102 may receive and store the user's surveyresponses in the user account data store 132.

By way of yet further example, the color-related social networkrecommendation service 102 may access the user's purchase history fromthe commerce service 106 and/or the user account data store 132 todetermine items the user has purchased or browsed, and color informationassociated with the items. By way of still further example, thecolor-related social network recommendation service 102 may access theuser's social networking page from social networking services 150,access posted images of items that the user has indicated she likes(e.g., by providing a “like”, thumbs up, or other positive indicationwith respect to the images) and process the images as discussedelsewhere herein to determine corresponding color palettes.

At block 306, the color-related social network recommendation service102 ranks the user's color preferences identified at block 304. If thecolor information is received from multiple sources, such as discussedabove, the color preference information from the variety of sources maybe combined to form a unified color preference determination. Forexample, a color preference score may be generated for a given colorpalette from color preference information regarding the given colorpalette from the variety of sources. Various color palettes may beranked based on their relative score. In generating a unified colorpreference determination, color preference information from certainsources may be weighted differently than color preference informationfrom other sources. The color preference indications may also benormalized. Optionally, the color information from different sources maybe weighted the same. An example formula for calculating a colorpreference score from color preference indications of aColorPreferenceSource from 1 to n sources with corresponding weightingsis as follows:

Color PreferenceScore=Σ(weight₁*ColorPreferenceSource₁+weight₂*ColorPreferenceSource₂ .. . weight_(n)*ColorPreferenceSource_(n))

Optionally, in order to identify colors the user may potentially like,the color-related social network recommendation service 102 may identifyclusters of colors within a color space of colors between those colorsthe user prefers (e.g., the user's top ranked three colors) and thosecolors the user does not like (e.g., the user's bottom ranked threecolors).

At block 308, users that have similar color preferences are determinedaccording to one or more color preference rules. By way of illustration,in accordance with a color preference rule, the color-related socialnetwork recommendation service 102 may identify users that have the samemost preferred color palette, and/or may identify users that have thesame or sufficiently similar ranking of multiple preferred colorpalettes, for at least a portion of the user's ranking (e.g., the topfour ranked color palettes). By way of illustration, the color-relatedsocial network recommendation service 102 may identify users that havethe same most preferred color palette, and/or may identify users thathave the same color palettes in a group of color palettes, although theymay have different ranking orders within the group. As another example,the color-related social network recommendation service 102 may identifyusers that have the same most preferred palette and the same next twomost preferred palettes, even though the ranking of the next two mostpreferred palettes may differ. In this example if User 1 and User 2 havethe same most preferred palette (palette A), and User 1's second mostpreferred palette is palette B and third most preferred palette ispalette C, while User 2's second most preferred palette is palette C andthird most preferred palette is palette B, then User 1 and User 2 willbe identified as “matching users” with similar enough tastes in palettesso as to be grouped together for one or more of the services discussedherein. Optionally, users with the same or sufficiently similar colorpreferences may be assigned to a group for purposes of one or moreservices (e.g., information sharing and communications among usersassigned to a group). The group may be a color-based group that isassociated with one or more color palettes used to define the group.

Optionally, a user may define via a user interface a color preferencerule specifying how closely or loosely another user's color preferencesneed to be in order for one or more of user interaction services to beprovided with respect to the user. As yet another option, a systemoperator provides such definition or both a user and a system operatormay contribute to the definition of how closely or loosely anotheruser's color preferences need to be in order for one or more of userinteraction services to be provided with respect to the user. Suchdefinitions may be accessed and used by the color-related social networkrecommendation service 102 in determining whether a given user is to beassigned to a given color-based group. For example, the user'sdefinition may be accessed from the user's account record stored in useraccount data store 132.

Optionally, a color palette may be considered the same as a differentcolor palette if their respective primary colors are within a thresholddistance. For example, the threshold may indicate a maximum colordistance, wherein if the respective primary colors are less than themaximum color distance apart, color palettes are considered the samecolor palettes for purposes discussed herein. Thus, if two users rankedtwo different color palettes as their most preferred palettes, but thetwo color palettes are within a specified threshold, the color palettesmay be considered the same. As yet another option, the threshold may bespecified by the user via a user interface, a system operator, orotherwise. For more example details on determining color distance, seeU.S. patent application Ser. No. ______, entitled “IMAGE-BASED COLORPALETTE GENERATION,” filed on Jun. 26, 2014, and corresponding toAttorney Docket No. SEAZN.912A1; and U.S. patent application Ser. No.______, entitled “BUILDING A PALETTE OF COLORS BASED ON HUMAN COLORPREFERENCES,” filed on Jun. 26, 2014, and corresponding to AttorneyDocket No. SEAZN.904A1, each of which is incorporated by referenceherein in its entirety.

Optionally, users may be identified that do not have similar colorpreferences as the user, but do have color preferences corresponding tothe colors that have been identified at block 306 as colors that theuser may potentially like. Such users may be able to inspire the user toexpand the user's color preferences by sharing items and color-relatedrecommendations that do not corresponds to the user's current preferredcolors.

At block 310, the user's information sharing instructions are accessed.For example, the user's information sharing instructions may be accessedfrom the user's account record stored in user account data store 132 ormay be dynamically specified by the user via a user interface. Theinformation instructions may indicate one or more of the following:

-   -   whether the user is to be identified to other users in a        color-based group;    -   whether all of the user's purchases made via one or more        commerce services (e.g., commerce service 106) are to be shared        with other users in a color-based group;    -   whether the user's purchases of items, made via one or more        commerce services (e.g., commerce service 106), having a color        palette used in defining the group are to be shared with other        users in a color-based group;    -   whether the user is willing to receive communications from other        members of the color-based group and in what form (e.g., via the        user's social networking page, via a short messaging service,        via an email, or otherwise);    -   whether the user is willing to receive still and/or video images        from other members of the color-based group;    -   whether the user is willing to receive color palette        recommendations;    -   whether the user is willing to receive survey/opinion requests        from other members of the color-based group; and/or    -   whether the user is willing to receive opinions/reviews from        other members of the color-based group.

At block 312, the color-related social network recommendation service102 enables the user to receive and provide information andcommunications to other members of the color-based group in conformancewith the user instructions discussed above with respect to block 310.The information and communications may be provided via pages served bythe commerce service 106, the social networking services 150, via email,short messaging services (e.g., SMS messages), audible communications,and/or otherwise. For example, the color-related social networkrecommendation service 102 may recommend the user to other users asrecommended social networking partners or group members. Thecolor-related social network recommendation service 102 may identifyother members of the color-based group to the user. The color-relatedsocial network recommendation service 102 may identify and recommend tothe user other users having the same or similar color preferences withwhom the user can selectively network.

Optionally, the color-related social network recommendation service 102may generate and provide recommendations, such as recommendations ofitems available from the commerce service 106, to members of acolor-based group based at least in part on the color palettesassociated with the group and/or group members. For more example detailson providing color-based item recommendations, see U.S. patentapplication Ser. No. ______, entitled “AUTOMATIC COLOR PALETTE BASEDRECOMMENDATIONS,” filed on Jun. 26, 2014, and corresponding to AttorneyDocket No. SEAZN.913A1; and U.S. patent application Ser. No. ______,entitled “AUTOMATIC COLOR PALETTE BASED RECOMMENDATIONS,” filed on Jun.26, 2014, and corresponding to Attorney Docket No. SEAZN.913A2, each ofwhich is incorporated by reference herein in its entirety.

The color-related social network recommendation service 102 ends theroutine at block 314.

Example Palette Generation Process

FIG. 4 is a flow diagram illustrating an embodiment of a palettegeneration routine 400 implemented by an image processing service 104.Routine 400 begins at block 402, where the image processing service 104obtains a color image. The color image can depict one or more items, adesign, a scene, a landscape, or any other content of color. Obtainingthe color image can be accomplished by receiving image data from imagesources, such as from item data store 130, user account data store 132,third party users 140, of via image data transmission to the imageprocessing service 104.

Metadata associated with the color image can also be obtained. Themetadata may include information corresponding to the colors, colorscheme, lighting source, lighting direction, or other factors regardingthe color rendering of the image. The metadata may also includeinformation about currently obtained color image, other color images,subjects or category of subjects depicted, sources contributing to theimage, or their interrelations. The metadata can further include anyother information associated with the color image as can be envisionedby a person of skill in the art.

At block 404, palette generation criteria are determined. The palettegeneration criteria can be inputted by an image source provider or athird party user 140, who may correspond to a host of a commerce networksite, a merchandise provider or vendor, a visitor to the commercenetwork site, a consumer, a designer, an artist, an architect, or thelike. Alternatively, or in addition, the palette generation criteria canbe automatically generated by the image processing service 104, oranother computing device or system. For example, features or patternsexhibited by the color image as well as associated metadata can beconsidered by an automated process to determine the palette generationcriteria.

The palette generation criteria may indicate various preferences,factors, parameters, thresholds, or requirements that facilitate orcontrol the palette generation routine 400 performed by image processingservice 104. For example, the palette generation criteria may indicate acomputational method for pre-processing the obtained color image, forgenerating a color distribution, for identifying representative colors,for generating palette candidates, or for determining a palette. Thepalette generation criteria may also indicate parameters, thresholds,restraints, formula, or other factors that may inform variouscomputational methods applicable to routine 400 or subroutines that itmay invoke. For example, the palette generation criteria can identifycolor distance formula(e) or can include one or more thresholds of colordistance for merging similar colors when representative colors areidentified from a color image.

In some embodiments, the obtained color image is pre-processed at block406. For example, the color image may be converted to a formatcompatible with the palette generation routine 400 or its subroutines.The color image may also be classified or prioritized based onapplicable metadata. Further, pre-processing can include noise removal,rotation, re-orientation, normalization in shape, size, resolution, orcolor, or other manipulations to facilitate relevant processes andmethods.

Still further, pre-processing may include area marking or labelingwithin the color image. For example, various contour matching algorithmscan be employed to automatically mark out an area of interest.Alternatively, or in addition, areas of interest can be manually,semi-manually, or semi-automatically marked out. In some embodiments, abackground can be removed during pre-processing through area marking orlabeling. In another embodiment, one or more areas of interest can becropped or extracted so that only these areas form the basis for palettegeneration. In still another embodiment, area marking or labeling mayindicate colors that should be treated in a specific way, such as to beignored, to be associated with more or less weight, to disambiguate to agreater or lesser extent. Information corresponding to pre-processingcan be included in corresponding metadata that is associated with thecolor image, which can facilitate palette generation.

At block 408, representative colors and their associated weight areidentified from the obtained color image. The identification ofrepresentative colors may include multiple subroutines or sub-elements.Various image processing or clustering algorithms can be employed toachieve this. In some embodiments, a color distribution, such as ahistogram illustrating distinct colors with their corresponding weight,is generated based on the color image. For example, the colordistribution can be generated by invoking subroutine 400 as illustratedin FIG. 4 and as will be further described below. The generation ofcolor distribution can be facilitated or controlled by informationincluded in the palette generation criteria. For example, the palettegeneration criteria can indicate a set of standardized colors and/orbinning criteria as bases for generating the color distribution. Oncethe color distribution is generated, representative colors can beidentified based on the color distribution. The identification ofrepresentative colors can be facilitated or controlled by informationincluded in the palette generation criteria or the metadata associatedwith the color image.

At block 410, a palette candidate is generated to include at least asubset of the identified representative colors and their associatedweight. The color palette candidate may further include metadataassociated with the identified representative colors and weight.

In some embodiments, the palette generation criteria may specify orindicate criteria for determining which identified representative colorscan be included in a palette candidate. For example, identifiedrepresentative colors can each be associated with a weight. The palettegeneration criteria may indicate a threshold on the weights associatedwith identified colors to filter out colors that are relativelyinsignificant in the color image. The threshold can be dynamicallygenerated based on a weight distribution of the identifiedrepresentative colors. For example, the palette candidate can excludeidentified representative colors associated with a weight lower than twostandard deviations from a mean weight. Optionally, image processingservice 104 can move back to block 404, where new palette generationcriteria can be determined. Based on the new palette generationcriteria, a new palette candidate can be generated.

At block 412, one or more palettes can be identified among previouslygenerated palette candidate(s). In some embodiments, each generatedpalette candidate is automatically considered a final palette soadditional identification is not required at block 412. In otherembodiments, one or more palettes are identified among multiple palettecandidates based on palette generation criteria that may indicatewhether the identification should be performed manually, semi-manually,semi-automatically, or automatically, which attributes should beexamined, or what standards should be applied to the identification, orthe like.

Identification of color palettes can be accomplished manually,semi-manually, semi-automatically, or automatically. For example, byrepeating the part of routine 400 from block 404 to block 410, a thirdparty user 140 may experiment with various palette generation criteriasettings that can lead to generation of multiple palette candidates. Inother words, each generated palette candidate can correspond to adistinct setting of palette generation criteria. The third party user140 may then select one or more of the candidates and label them aspalettes associated with the color image. Alternatively, or in addition,the identification of color palettes can be accomplished automaticallyby the image processing service 104, or by another computing device orsystem. For example, information associated with change of color valuesand associated weight across various palette candidates can beconsidered a function of certain settings included in palette generationcriteria corresponding to the various palette candidates. Accordingly,various optimization algorithms, such as gradient methods, dynamicprogramming, evolutionary algorithms, combinatorial optimization, orstochastic optimization, can be utilized to pick a palette candidate(s)that achieves an optimization based on the function. Illustratively, apalette candidate can be selected if a corresponding rate of color valuechange is close to zero, as measured in accordance with the function.

Once identified, the one or more palettes can be stored at the palettedata store 110, either by creating new data entries or updating existingpalettes. The image processing service 104 then ends the routine atblock 714. Depending on relevant requirements or preferences indicatedin the palette generation criteria corresponding to identified palettes,various metadata can be associated therewith, for purposes of indicatingtheir format, semantics, features, conditions, or the like. In someembodiments, metadata can link a palette to a corresponding color imagefrom which the color palette is derived. Alternatively, or in addition,metadata may indicate a category or a position in a taxonomy associatedwith the corresponding color image. Metadata can also indicate patterns,colocations, or other attributes of spatial distribution of palettecolors within the corresponding color image.

Depending on the embodiment, certain acts, events, or functions of anyof the algorithms described herein can be performed in a differentsequence, can be added, merged, or left out altogether (e.g., not alldescribed acts or events are necessary for the practice of thealgorithm). Moreover, in certain embodiments, acts or events can beperformed concurrently, e.g., through multi-threaded processing,interrupt processing, or multiple processors or processor cores or onother parallel architectures, rather than sequentially.

The various illustrative logical blocks, modules, and algorithm elementsdescribed in connection with the embodiments disclosed herein can beimplemented as electronic hardware, computer software, or combinationsof both. To clearly illustrate this interchangeability of hardware andsoftware, various illustrative components, blocks, modules, and elementshave been described above generally in terms of their functionality.Whether such functionality is implemented as hardware or softwaredepends upon the particular application and design constraints imposedon the overall system. The described functionality can be implemented invarying ways for each particular application, but such implementationdecisions should not be interpreted as causing a departure from thescope of the disclosure.

The various illustrative logical blocks and modules described inconnection with the embodiments disclosed herein can be implemented orperformed by a machine, such as a general purpose processor, a digitalsignal processor (DSP), an application specific integrated circuit(ASIC), a field programmable gate array (FPGA) or other programmablelogic device, discrete gate or transistor logic, discrete hardwarecomponents, or any combination thereof designed to perform the functionsdescribed herein. A general purpose processor can be a microprocessor,but in the alternative, the processor can be a controller,microcontroller, or state machine, combinations of the same, or thelike. A processor can also be implemented as a combination of computingdevices, e.g., a combination of a DSP and a microprocessor, a pluralityof microprocessors, one or more microprocessors in conjunction with aDSP core, or any other such configuration.

The elements of a method, process, or algorithm described in connectionwith the embodiments disclosed herein can be embodied directly inhardware, in a software module executed by a processor, or in acombination of the two. A software module can reside in RAM memory,flash memory, ROM memory, EPROM memory, EEPROM memory, registers, harddisk, a removable disk, a CD-ROM, or any other form of computer-readablestorage medium known in the art. An exemplary storage medium can becoupled to the processor such that the processor can read informationfrom, and write information to, the storage medium. In the alternative,the storage medium can be integral to the processor. The processor andthe storage medium can reside in an ASIC. The ASIC can reside in a userterminal. In the alternative, the processor and the storage medium canreside as discrete components in a user terminal.

Conditional language used herein, such as, among others, “can,” “might,”“may,” “e.g.,” and the like, unless specifically stated otherwise, orotherwise understood within the context as used, is generally intendedto convey that certain embodiments include, while other embodiments donot include, certain features, elements and/or states. Thus, suchconditional language is not generally intended to imply that features,elements and/or states are in any way required for one or moreembodiments or that one or more embodiments necessarily include logicfor deciding, with or without author input or prompting, whether thesefeatures, elements and/or states are included or are to be performed inany particular embodiment. The terms “comprising,” “including,”“having,” “involving,” and the like are synonymous and are usedinclusively, in an open-ended fashion, and do not exclude additionalelements, features, acts, operations, and so forth. Also, the term “or”is used in its inclusive sense (and not in its exclusive sense) so thatwhen used, for example, to connect a list of elements, the term “or”means one, some, or all of the elements in the list.

Disjunctive language such as the phrase “at least one of X, Y or Z,”unless specifically stated otherwise, is otherwise understood with thecontext as used in general to present that an item, term, etc., may beeither X, Y or Z, or any combination thereof (e.g., X, Y and/or Z).Thus, such disjunctive language is not generally intended to, and shouldnot, imply that certain embodiments require at least one of X, at leastone of Y or at least one of Z to each be present.

Unless otherwise explicitly stated, articles such as “a” or “an” shouldgenerally be interpreted to include one or more described items.Accordingly, phrases such as “a device configured to” are intended toinclude one or more recited devices. Such one or more recited devicescan also be collectively configured to carry out the stated recitations.For example, “a processor configured to carry out recitations A, B andC” can include a first processor configured to carry out recitation Aworking in conjunction with a second processor configured to carry outrecitations B and C.

While the above detailed description has shown, described, and pointedout novel features as applied to various embodiments, it will beunderstood that various omissions, substitutions, and changes in theform and details of the devices or algorithms illustrated can be madewithout departing from the spirit of the disclosure. As will berecognized, certain aspects described herein can be embodied within aform that does not provide all of the features and benefits set forthherein, as some features can be used or practiced separately fromothers. The scope of certain embodiments disclosed herein is indicatedby the appended claims rather than by the foregoing description. Allchanges which come within the meaning and range of equivalency of theclaims are to be embraced within their scope.

What is claimed is:
 1. A system comprising: a data store configured toat least store computer-executable instructions; and a hardwareprocessor in communication with the data store, the hardware processorconfigured to execute the computer-executable instructions to at least:access color preference information of a first user, including at leasta first image associated with the first user; process the first image togenerate a first color palette corresponding to the first image;identify other users having a similar color preference as the first userbased at least in part on the first color palette; and generate a socialnetworking recommendation for the first user with respect to at leastone of the identified other users having similar a color preference withrespect to the first user to facilitate interactions between the firstuser and the at least one of the identified other users having similar acolor preference.
 2. The system of claim 1, wherein the hardwareprocessor is further configured to execute the computer-executableinstructions to at least generate an indication to the at least one ofthe identified other users when the first user has purchased a firstitem associated with the first color palette.
 3. The system of claim 1,wherein the hardware processor is further configured to execute thecomputer-executable instructions to at least enable the first user toshare a color palette with the at least one of the identified otherusers.
 4. The system of claim 1, wherein the hardware processor isfurther configured to execute the computer-executable instructions to atleast access item purchase information associated with the first user,the item purchase information including color palette informationregarding a purchased item, wherein the identification of the otherusers having similar a color preference as the first user is based atleast in part on the item purchase information including the colorpalette information.
 5. The system of claim 1, wherein identifying theother users having similar a color preference as the first user is basedat least in part on color related search queries submitted by one ormore other users.
 6. The system of claim 1, wherein the hardwareprocessor is further configured to execute the computer-executableinstructions to at least: identify a first plurality of color palettesassociated with the first user; and rank the first plurality of colorpalettes to correspond to a determined color palette preference of thefirst user, wherein identifying other users having similar a colorpreference as the first user is based at least in part on the ranking ofthe first plurality of color palettes.
 7. A computer-implemented methodcomprising: under control of a hardware computing device configured withspecific computer-executable instructions, generating a first colorpalette from an image; determining a color preference of a first userbased at least in part on the generated first color palette from theimage; identifying other users having a similar color preference as thefirst user based at least in part on the determined color preference ofthe first user; and facilitating interactions between the first user andone or more of the identified other users having similar a colorpreference with respect to the first user.
 8. The computer-implementedmethod of claim 7, wherein generating the first color palette from theimage further comprises generating the first color palette from at leastone of: an image received from the user, or an image of an itempurchased by the user.
 9. The computer-implemented method of claim 7,wherein facilitating interactions between the first user and the one ormore of the identified other users comprises providing the first userwith a social networking recommendation with respect to the one or moreof the identified other users having a similar color preference.
 10. Thecomputer-implemented method of claim 7, wherein facilitatinginteractions between the first user and the one or more of theidentified other users having similar a color preference furthercomprises providing an indication to the one or more of the identifiedother users when the first user has at least one of: browsed a firstitem associated with the first color palette or purchased a first itemassociated with the first color palette.
 11. The computer-implementedmethod of claim 7, wherein facilitating interactions between the firstuser and the one or more of the identified other users having similar acolor preference further comprises enabling the first user to share acolor palette with at least one identified other user.
 12. Thecomputer-implemented method of claim 7, wherein the color preference ofthe first user is determined based at least in part on a color paletteof an item purchased by the user, wherein the color palette of the itempurchased by the user is determined using data from a correspondingpurchase record, and wherein identifying the other users having similara color preference as the first user is based at least in part on thecolor palette of the item purchased by the user.
 13. Thecomputer-implemented method of claim 7, wherein identifying the otherusers having a similar color preference as the first user is based atleast in part on color related search queries submitted by one or moreother users.
 14. The computer-implemented method of claim 7, whereinidentifying other users having a similar color preference as the firstuser further comprises identifying a second user having a second colorpreference similar to the color preference of the first user andidentifying a third user having a third color preference similar to thecolor preference of the first user, and wherein the second colorpreference is different than the third color preference.
 15. Thecomputer-implemented method of claim 7 further comprising: identifying afirst plurality of color palettes associated with the first user; andranking the first plurality of color palettes to correspond to adetermined color palette preference of the first user; whereinidentifying the other users having similar a color preference as thefirst user is based at least in part on the ranking of the firstplurality of color palettes.
 16. The computer-implemented method ofclaim 7, wherein the image is accessed from a data store of images of awardrobe of the first user.
 17. A non-transitory computer-readablestorage medium storing computer-executable instructions that whenexecuted by a processor perform operations comprising: generating afirst color palette from an image; determining a color preference of afirst user based at least in part on the first generated color palettefrom the image; identifying other users having a similar colorpreference as the first user based at least in part on the determinedcolor preference of the first user; and facilitating interactionsbetween the first user and one or more other users having similar acolor preference with respect to the first user.
 18. The non-transitorycomputer-readable storage medium of claim 17, wherein generating thefirst color palette from the image further comprises generating thefirst color palette from at least one of: an image received from theuser, or an image of an item purchased by the user.
 19. Thenon-transitory computer-readable storage medium of claim 17, whereinfacilitating interactions between the first user and one or more otherusers comprises providing the first user with a social networkingrecommendation with respect to the one or more other users having asimilar color preference with respect to the first user.
 20. Thenon-transitory computer-readable storage medium of claim 17, whereinfacilitating interactions between the first user and one or more otherusers having similar a color preference further comprises providing anindication to the one or more other users when the first user haspurchased a first item associated with the first color palette.
 21. Thenon-transitory computer-readable storage medium of claim 17, wherein thecolor preference of the first user is determined at least in part basedon a color palette of an item purchased by the user, wherein the colorpalette of the item purchased by the user is determined using data froma corresponding purchase record and wherein identifying other usershaving a similar color preference as the first user is based at least inpart on the color palette of the item purchased by the user.
 22. Thenon-transitory computer-readable storage medium of claim 17, whereinidentifying other users having a similar color preference as the firstuser is based at least in part on color related search queries submittedby one or more of the other users.
 23. The non-transitorycomputer-readable storage medium of claim 17, the operations furthercomprising: identifying a first plurality of color palettes associatedwith the user; and ranking the first plurality of color palettes tocorrespond to a determined color palette preference of the first user;wherein identifying other users having similar a color preference as thefirst user is based at least in part on the ranking of the firstplurality of color palettes.